package com.gujiangbo.algorithm;

import java.util.Arrays;

/**
 * 冒泡排序
 * <p>
 * （1）比较前后相邻的二个数据，如果前面数据大于后面的数据，就将这二个数据交换。
 * （2）这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后，最大的一个数据就“沉”到数组第
 * N-1 个位置。
 * （3）N=N-1，如果 N 不为 0 就重复前面二步，否则排序完成。
 * </p>
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] data = {45, 12, 34, 67, 1, 34, 32, 65, 77, 99};
        bubbleSort(data);
        System.out.println(Arrays.toString(data));
    }

    public static void bubbleSort(int[] data) {
        int i, j;
        int length = data.length;
        for (i = 0; i < length; i++) {
            for (j = 1; j < length - i; j++) {
                //前面的数字大于后面的数字就交换
                if (data[j - 1] > data[j]) {
                    //交换 a[j-1]和 a[j]
                    int temp;
                    temp = data[j - 1];
                    data[j - 1] = data[j];
                    data[j] = temp;
                }
            }
        }
    }
}